home *** CD-ROM | disk | FTP | other *** search
- /* allocmem.c --- p550 */
- #include <stdio.h>
- #include <dos.h>
- #define DOS_PRTSTR 0x09
- char str[80]= "Successfully allocated memory using allocmem...\n$";
- main()
- {
- union REGS xr;
- struct SREGS sr;
- int retval;
- char far *stradd;
- unsigned int segadd, size;
- stradd = (char far *)(&str[0]);
- printf("Enter number of paragraphs requested:");
- scanf(" %u", &size);
- if(size < 5) size =5; /* Need at least 5 paras */
- printf("Allocating %u paragraphs of memory\n",size);
- if((retval =allocmem(size, &segadd)) != -1)
- {
- printf("Memory allocation failed!\n");
- printf("Only %d paragraphs available!\n",retval);
- exit(0);
- }
- /* Copy string into allocated memory using movedata */
- movedata(FP_SEG(stradd), FP_OFF(stradd),
- segadd, 0, 80);
- sr.ds = segadd;
- xr.x.dx =0;
- xr.h.ah = DOS_PRTSTR;
- intdosx(&xr, &xr, &sr);
- /* Free memory before exiting */
- freemem(segadd);
- }